const FeedbackMongo = require("@mongodb/feedback/index")
const BaseServer = require("../base/baseServer")

class Server extends BaseServer{

	constructor() {
		super()
	}

	/**
	 * 添加意见反馈
	 * @param ctx
	 * @returns {Promise<void>}
	 */
	static async add (ctx) {
		// if (ctx.session[Config.addFeedbackTimeKey]) {
		// 	const lastTime = new Date(ctx.session[Config.addFeedbackTimeKey])
		// 	const chaSecond = (currentDate.getTime() - lastTime.getTime()) / 1000
		// 	if (chaSecond < 5) {
		// 		throw ErrorCode.me.repeat_num_max
		// 	}
		// }
		await FeedbackMongo.add(ctx.vals)
		// ctx.session[Config.addFeedbackTimeKey] = currentDate
	}

	/**
	 * 获取反馈列表
	 * @param ctx 环境上下文
	 * @returns {Promise<void>}
	 */
	static async all (ctx) {
		return await FeedbackMongo.find(ctx.vals, false)
	}

	/**
	 * 获取所有数据
	 * @param ctx 环境上下文
	 * @returns {Promise<void>}
	 */
	static async allAuth (ctx) {
		return await FeedbackMongo.find(ctx.vals, true)
	}

	/**
	 * 修改数据
	 * @param ctx 环境上下文
	 * @returns {Promise<*|IDBValidKey|void>}
	 */
	static async update (ctx) {
		return await FeedbackMongo.update(ctx.vals)
	}

	/**
	 * 删除
	 * @param ctx 环境上下文
	 * @returns {Promise<*>}
	 */
	static async remove (ctx) {
		return await FeedbackMongo.deleteOne(ctx.vals.id)
	}

	/**
	 * 详情数据
	 * @param ctx 环境上下文
	 * @returns {Promise<*>}
	 */
	static async detail (ctx) {
		return await FeedbackMongo.findOne(ctx.vals.id)
	}

}

Server.mongo = FeedbackMongo

module.exports = Server
